<?php
//自动生成,请根据需要修改
namespace app\article\controller;
use app\common\controller\Base;
use think\facade\Request;
use think\Db;
/**
* @title leave_message接口
* @description leave_message说明
* @group 文章
*/
class LeaveMessage extends Base{

	/**
	* @title 按条件删除记录
	* @description 按条件删除leave_message的数据
	* @author 开发者（zzz）
	* @url /article/leave_message/delete
	* @method post
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:name type:VarChar require:1 default:0 other: desc:姓名
	* @param name:address type:VarChar require:1 default:0 other: desc:联系人地址
	* @param name:email type:VarChar require:1 default:0 other: desc:邮箱
	* @param name:phone_number type:Int require:1 default:0 other: desc:电话号码
	* @param name:leave_message type:VarChar require:1 default:0 other: desc:留言
	* @param name:create_time type:Date require:1 default:0 other: desc:创建时间
	* @param name:creater type:VarChar require:1 default:0 other: desc:创建者
	* @param name:update_time type:Date require:1 default:0 other: desc:更新时间
	* @param name:updater type:VarChar require:1 default:0 other: desc:更新者
	* @param name:status type:TinyInt require:1 default:0 other: desc:当前状态值
	*
	*
	* @return id:id
	* @return name:姓名
	* @return address:联系人地址
	* @return email:邮箱
	* @return phone_number:电话号码
	* @return leave_message:留言
	* @return create_time:创建时间
	* @return creater:创建者
	* @return update_time:更新时间
	* @return updater:更新者
	* @return status:当前状态值
	*
	*/
	public function delete (){
		$input=input();
		//模块 - 输入数据
		$input['id'] = Request::post('id/d');
		$input['name'] = Request::post('name');
		$input['address'] = Request::post('address');
		$input['email'] = Request::post('email');
		$input['phone_number'] = Request::post('phone_number/d');
		$input['leave_message'] = Request::post('leave_message');
		$input['create_time'] = Request::post('create_time');
		$input['creater'] = Request::post('creater');
		$input['update_time'] = Request::post('update_time');
		$input['updater'] = Request::post('updater');
		$input['status'] = Request::post('status');

		// input结果返回
		$msg['data']['id'] = $input['id'];
		$msg['data']['name'] = $input['name'];
		$msg['data']['address'] = $input['address'];
		$msg['data']['email'] = $input['email'];
		$msg['data']['phone_number'] = $input['phone_number'];
		$msg['data']['leave_message'] = $input['leave_message'];
		$msg['data']['create_time'] = $input['create_time'];
		$msg['data']['creater'] = $input['creater'];
		$msg['data']['update_time'] = $input['update_time'];
		$msg['data']['updater'] = $input['updater'];
		$msg['data']['status'] = $input['status'];

		// ---  模块 - 删除  ---
		//删除的条件
		$temp_map = [
			['id','=',$input['id']],
			['name','=',$input['name']],
			['address','=',$input['address']],
			['email','=',$input['email']],
			['phone_number','=',$input['phone_number']],
			['leave_message','=',$input['leave_message']],
			['create_time','=',$input['create_time']],
			['creater','=',$input['creater']],
			['update_time','=',$input['update_time']],
			['updater','=',$input['updater']],
			['status','=',$input['status']],
		];
		$delete_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2] == null || $v[2] == ''){
				continue;
			}
			array_push($delete_map,$v);
		}
		if(empty($delete_map)){
			$msg['msg'] = '删除条件不能为空';
			return $this->errorJson($msg);
		}

		//删除数据
		$delete_res = Db::name('leave_message')->where($delete_map)->delete();
		if(!$delete_res){
			$msg['msg'] = '删除数据失败！';
			return $this->errorJson($msg);
		}
		$msg['res'] = $delete_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 获取列表数据（paginate）
	* @description 获取leave_message的列表数据（分页）
	* @author 开发者（zzz）
	* @url /article/leave_message/get_list
	* @method *
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:name type:VarChar require:1 default:0 other: desc:姓名
	* @param name:address type:VarChar require:1 default:0 other: desc:联系人地址
	* @param name:email type:VarChar require:1 default:0 other: desc:邮箱
	* @param name:phone_number type:Int require:1 default:0 other: desc:电话号码
	* @param name:leave_message type:VarChar require:1 default:0 other: desc:留言
	* @param name:create_time type:Date require:1 default:0 other: desc:创建时间
	* @param name:creater type:VarChar require:1 default:0 other: desc:创建者
	* @param name:update_time type:Date require:1 default:0 other: desc:更新时间
	* @param name:updater type:VarChar require:1 default:0 other: desc:更新者
	* @param name:status type:TinyInt require:1 default:0 other: desc:当前状态值
	*
	* @param name:page type:Int require:0 default:0 other: desc:当前页
	* @param name:pagesize type:Int require:0 default:0 other: desc:每页数量
	*
	* @return id:id
	* @return name:姓名
	* @return address:联系人地址
	* @return email:邮箱
	* @return phone_number:电话号码
	* @return leave_message:留言
	* @return create_time:创建时间
	* @return creater:创建者
	* @return update_time:更新时间
	* @return updater:更新者
	* @return status:当前状态值
	*
	*/
	public function get_list (){
		$input=input();
		//模块 - 输入数据
		$input['id'] = Request::param('id/d');
		$input['name'] = Request::param('name');
		$input['address'] = Request::param('address');
		$input['email'] = Request::param('email');
		$input['phone_number'] = Request::param('phone_number/d');
		$input['leave_message'] = Request::param('leave_message');
		$input['create_time'] = Request::param('create_time');
		$input['creater'] = Request::param('creater');
		$input['update_time'] = Request::param('update_time');
		$input['updater'] = Request::param('updater');
		$input['status'] = Request::param('status');

		// input结果返回
		$msg['data']['id'] = $input['id'];
		$msg['data']['name'] = $input['name'];
		$msg['data']['address'] = $input['address'];
		$msg['data']['email'] = $input['email'];
		$msg['data']['phone_number'] = $input['phone_number'];
		$msg['data']['leave_message'] = $input['leave_message'];
		$msg['data']['create_time'] = $input['create_time'];
		$msg['data']['creater'] = $input['creater'];
		$msg['data']['update_time'] = $input['update_time'];
		$msg['data']['updater'] = $input['updater'];
		$msg['data']['status'] = $input['status'];

		// ---	模块 - 查询  ---
		//查询条件
		$temp_map = [
			['id','=',$input['id']],
			['name','like','%'.$input['name'].'%'],
			['address','like','%'.$input['address'].'%'],
			['email','like','%'.$input['email'].'%'],
			['phone_number','=',$input['phone_number']],
			['leave_message','like','%'.$input['leave_message'].'%'],
			['create_time','=',$input['create_time']],
			['creater','like','%'.$input['creater'].'%'],
			['update_time','=',$input['update_time']],
			['updater','like','%'.$input['updater'].'%'],
			['status','=',$input['status']],
		];
		//去除为空的条件
		$paginate_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2]===null || $v[2]=='' || $v[2]=='%%'){
				continue;
			}
			array_push($paginate_map,$v);
		}

		//获取数据
		$select_res = Db::name('leave_message')->where($paginate_map)->paginate();

		// paginate 返回数据
		$msg['list'] = $select_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 获取单条数据
	* @description 根据ID获取leave_message的指定记录
	* @author 开发者（zzz）
	* @url /article/leave_message/info
	* @method *
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	*
	*
	* @return id:id
	*
	*/
	public function info (){
		$input=input();
		//模块 - 输入数据
		$input['id'] = Request::param('id/d');

		// input结果返回
		$msg['data']['id'] = $input['id'];

		//模块 - 验证器
		$leave_messageValidate = new \app\article\validate\LeaveMessage;
		$validate = $leave_messageValidate->scene('only_id')->check($input);
		if (!$validate) {
			$msg['msg'] = '验证失败';
			$msg['validate'] = $leave_messageValidate->getError();
			return $this->errorJson($msg);
		}

		// ---	模块 - 查询  ---
		//查询条件
		$temp_map = [
			['id','=',$input['id']],
		];
		//去除为空的条件
		$find_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2]===null || $v[2]=='' || $v[2]=='%%'){
				continue;
			}
			array_push($find_map,$v);
		}

		//获取数据
		$select_res = Db::name('leave_message')->where($find_map)->find();

		// find 返回数据
		$msg['data'] = $select_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 更新记录
	* @description 根据ID更新leave_message指定记录的数据
	* @author 开发者（zzz）
	* @url /article/leave_message/edit
	* @method post
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:name type:VarChar require:1 default:0 other: desc:姓名
	* @param name:address type:VarChar require:1 default:0 other: desc:联系人地址
	* @param name:email type:VarChar require:1 default:0 other: desc:邮箱
	* @param name:phone_number type:Int require:1 default:0 other: desc:电话号码
	* @param name:leave_message type:VarChar require:1 default:0 other: desc:留言
	* @param name:create_time type:Date require:1 default:0 other: desc:创建时间
	* @param name:creater type:VarChar require:1 default:0 other: desc:创建者
	* @param name:update_time type:Date require:1 default:0 other: desc:更新时间
	* @param name:updater type:VarChar require:1 default:0 other: desc:更新者
	* @param name:status type:TinyInt require:1 default:0 other: desc:当前状态值
	*
	*
	* @return id:id
	* @return name:姓名
	* @return address:联系人地址
	* @return email:邮箱
	* @return phone_number:电话号码
	* @return leave_message:留言
	* @return create_time:创建时间
	* @return creater:创建者
	* @return update_time:更新时间
	* @return updater:更新者
	* @return status:当前状态值
	*
	*/
	public function edit (){
		$input=input();
		//模块 - 输入数据
		$input['id'] = Request::post('id/d');
		$input['name'] = Request::post('name');
		$input['address'] = Request::post('address');
		$input['email'] = Request::post('email');
		$input['phone_number'] = Request::post('phone_number/d');
		$input['leave_message'] = Request::post('leave_message');
		$input['create_time'] = date("Y-m-d H:i:s");
		$input['creater'] = Request::post('creater');
		$input['update_time'] = date("Y-m-d H:i:s");
		$input['updater'] = Request::post('updater');
		$input['status'] = Request::post('status');

        $user =  getIdByToken($input['token']);//通过token获取用户id
        if(count($user->all())>0){
            $msg['data']['creater']  = $input['creater'] = $user->all()['0']['account_id'];
            $msg['data']['updater']  = $input['updater'] = $user->all()['0']['account_id'];
        }else{
            $msg['msg'] = '无法获取用户数据！';
            return $this->errorJson($msg);
        }

		// input结果返回
		$msg['data']['id'] = $input['id'];
		$msg['data']['name'] = $input['name'];
		$msg['data']['address'] = $input['address'];
		$msg['data']['email'] = $input['email'];
		$msg['data']['phone_number'] = $input['phone_number'];
		$msg['data']['leave_message'] = $input['leave_message'];
		$msg['data']['create_time'] = $input['create_time'];
		$msg['data']['creater'] = $input['creater'];
		$msg['data']['update_time'] = $input['update_time'];
		$msg['data']['updater'] = $input['updater'];
		$msg['data']['status'] = $input['status'];

		//模块 - 验证器
		$leave_messageValidate = new \app\article\validate\LeaveMessage;
		$validate = $leave_messageValidate->scene('all_field')->check($input);
		if (!$validate) {
			$msg['msg'] = '验证失败';
			$msg['validate'] = $leave_messageValidate->getError();
			return $this->errorJson($msg);
		}

		// ---	模块 - 修改  ---
		//更新的条件
		$update_date = [
		'id'=>$input['id'],
		];
		//更新的数据
		$update_map = [
			'name'=>$input['name'],
			'address'=>$input['address'],
			'email'=>$input['email'],
			'phone_number'=>$input['phone_number'],
			'leave_message'=>$input['leave_message'],
			'create_time'=>$input['create_time'],
			'creater'=>$input['creater'],
			'update_time'=>$input['update_time'],
			'updater'=>$input['updater'],
			'status'=>$input['status'],
		];
		//获取数据
		$update_res = Db::name('leave_message')->where($update_date)->update($update_map);
		if(!$update_res){
			$msg['msg'] = '更新据失败！';
			return $this->errorJson($msg);
		}
		$msg['res'] = $update_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 获取列表数据（select）
	* @description 获取leave_message的列表数据（无分页）
	* @author 开发者（zzz）
	* @url /article/leave_message/get_select
	* @method *
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:id type:Int require:1 default:0 other: desc:id
	* @param name:name type:VarChar require:1 default:0 other: desc:姓名
	* @param name:address type:VarChar require:1 default:0 other: desc:联系人地址
	* @param name:email type:VarChar require:1 default:0 other: desc:邮箱
	* @param name:phone_number type:Int require:1 default:0 other: desc:电话号码
	* @param name:leave_message type:VarChar require:1 default:0 other: desc:留言
	* @param name:create_time type:Date require:1 default:0 other: desc:创建时间
	* @param name:creater type:VarChar require:1 default:0 other: desc:创建者
	* @param name:update_time type:Date require:1 default:0 other: desc:更新时间
	* @param name:updater type:VarChar require:1 default:0 other: desc:更新者
	* @param name:status type:TinyInt require:1 default:0 other: desc:当前状态值
	*
	*
	* @return id:id
	* @return name:姓名
	* @return address:联系人地址
	* @return email:邮箱
	* @return phone_number:电话号码
	* @return leave_message:留言
	* @return create_time:创建时间
	* @return creater:创建者
	* @return update_time:更新时间
	* @return updater:更新者
	* @return status:当前状态值
	*
	*/
	public function get_select (){
		$input=input();
		//模块 - 输入数据
		$input['id'] = Request::param('id/d');
		$input['name'] = Request::param('name');
		$input['address'] = Request::param('address');
		$input['email'] = Request::param('email');
		$input['phone_number'] = Request::param('phone_number/d');
		$input['leave_message'] = Request::param('leave_message');
		$input['create_time'] = Request::param('create_time');
		$input['creater'] = Request::param('creater');
		$input['update_time'] = Request::param('update_time');
		$input['updater'] = Request::param('updater');
		$input['status'] = Request::param('status');

		// input结果返回
		$msg['data']['id'] = $input['id'];
		$msg['data']['name'] = $input['name'];
		$msg['data']['address'] = $input['address'];
		$msg['data']['email'] = $input['email'];
		$msg['data']['phone_number'] = $input['phone_number'];
		$msg['data']['leave_message'] = $input['leave_message'];
		$msg['data']['create_time'] = $input['create_time'];
		$msg['data']['creater'] = $input['creater'];
		$msg['data']['update_time'] = $input['update_time'];
		$msg['data']['updater'] = $input['updater'];
		$msg['data']['status'] = $input['status'];

		// ---	模块 - 查询  ---
		//查询条件
		$temp_map = [
			['id','=',$input['id']],
			['name','like','%'.$input['name'].'%'],
			['address','like','%'.$input['address'].'%'],
			['email','like','%'.$input['email'].'%'],
			['phone_number','=',$input['phone_number']],
			['leave_message','like','%'.$input['leave_message'].'%'],
			['create_time','=',$input['create_time']],
			['creater','like','%'.$input['creater'].'%'],
			['update_time','=',$input['update_time']],
			['updater','like','%'.$input['updater'].'%'],
			['status','=',$input['status']],
		];
		//去除为空的条件
		$select_map = [];
		foreach ($temp_map as $k=>$v){
			if ($v[2]===null || $v[2]=='' || $v[2]=='%%'){
				continue;
			}
			array_push($select_map,$v);
		}

		//获取数据
		$select_res = Db::name('leave_message')->where($select_map)->select();

		// select 返回数据
		$msg['list'] = $select_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}
	/**
	* @title 插入记录
	* @description 插入leave_message数据
	* @author 开发者（zzz）
	* @url /article/leave_message/add
	* @method post
	*
	* @param name:token require:1 default: desc:token
	*
	* @param name:name type:VarChar require:1 default:0 other: desc:姓名
	* @param name:address type:VarChar require:1 default:0 other: desc:联系人地址
	* @param name:email type:VarChar require:1 default:0 other: desc:邮箱
	* @param name:phone_number type:Int require:1 default:0 other: desc:电话号码
	* @param name:leave_message type:VarChar require:1 default:0 other: desc:留言
	* @param name:create_time type:Date require:1 default:0 other: desc:创建时间
	* @param name:creater type:VarChar require:1 default:0 other: desc:创建者
	* @param name:update_time type:Date require:1 default:0 other: desc:更新时间
	* @param name:updater type:VarChar require:1 default:0 other: desc:更新者
	* @param name:status type:TinyInt require:1 default:0 other: desc:当前状态值
	*
	*
	* @return name:姓名
	* @return address:联系人地址
	* @return email:邮箱
	* @return phone_number:电话号码
	* @return leave_message:留言
	* @return create_time:创建时间
	* @return creater:创建者
	* @return update_time:更新时间
	* @return updater:更新者
	* @return status:当前状态值
	*
	*/
	public function add (){
		$input=input();
		//模块 - 输入数据
		$input['name'] = Request::post('name');
		$input['address'] = Request::post('address');
		$input['email'] = Request::post('email');
		$input['phone_number'] = Request::post('phone_number/d');
		$input['leave_message'] = Request::post('leave_message');
		$input['create_time'] = date("Y-m-d H:i:s");
		$input['creater'] = Request::post('creater');
		$input['update_time'] = date("Y-m-d H:i:s");
		$input['updater'] = Request::post('updater');
		$input['status'] = '1';

        $user =  getIdByToken($input['token']);//通过token获取用户id
        if(count($user->all())>0){
            $msg['data']['creater']  = $input['creater'] = $user->all()['0']['account_id'];
            $msg['data']['updater']  = $input['updater'] = $user->all()['0']['account_id'];
        }else{
            $msg['msg'] = '无法获取用户数据！';
            return $this->errorJson($msg);
        }

		// input结果返回
		$msg['data']['name'] = $input['name'];
		$msg['data']['address'] = $input['address'];
		$msg['data']['email'] = $input['email'];
		$msg['data']['phone_number'] = $input['phone_number'];
		$msg['data']['leave_message'] = $input['leave_message'];
		$msg['data']['create_time'] = $input['create_time'];
		$msg['data']['creater'] = $input['creater'];
		$msg['data']['update_time'] = $input['update_time'];
		$msg['data']['updater'] = $input['updater'];
		$msg['data']['status'] = $input['status'];

		//模块 - 验证器
		$leave_messageValidate = new \app\article\validate\LeaveMessage;
		$validate = $leave_messageValidate->scene('except_id')->check($input);
		if (!$validate) {
			$msg['msg'] = '验证失败';
			$msg['validate'] = $leave_messageValidate->getError();
			return $this->errorJson($msg);
		}

		// ---	模块 - 新增  ---
		//插入的数据
		$insert_data = [
			'name'=>$input['name'],
			'address'=>$input['address'],
			'email'=>$input['email'],
			'phone_number'=>$input['phone_number'],
			'leave_message'=>$input['leave_message'],
			'create_time'=>$input['create_time'],
			'creater'=>$input['creater'],
			'update_time'=>$input['update_time'],
			'updater'=>$input['updater'],
			'status'=>$input['status'],
		];
		//添加数据
		$insert_res = Db::name('leave_message')->data($insert_data)->insert();
		if(!$insert_res){
			$msg['msg'] = '插入数据失败！';
			return $this->errorJson($msg);
		}
		$msg['res'] = $insert_res;


		//接口输出json数据
		$msg['msg'] = '操作成功！';
		return $this->successJson($msg);
	}

}
